home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1998 April: Mac OS SDK / Dev.CD Apr 98 SDK1.toast / Development Kits (Disc 1) / Interfaces&Libraries / Universal / Interfaces / PInterfaces / Terminals.p < prev    next >
Encoding:
Text File  |  1998-02-12  |  12.5 KB  |  381 lines  |  [TEXT/MPS ]

  1. {
  2.      File:        Terminals.p
  3.  
  4.      Contains:    Communications Toolbox Terminal tool Interfaces.
  5.  
  6.      Version:    Technology:    System 7.5
  7.                  Release:    Universal Interfaces 3.1
  8.  
  9.      Copyright:    © 1988-1998, 1995-1997 by Apple Computer, Inc., all rights reserved
  10.  
  11.      Bugs?:        Please include the the file and version information (from above) with
  12.                  the problem description.  Developers belonging to one of the Apple
  13.                  developer programs can submit bug reports to:
  14.  
  15.                      devsupport@apple.com
  16.  
  17. }
  18. {$IFC UNDEFINED UsingIncludes}
  19. {$SETC UsingIncludes := 0}
  20. {$ENDC}
  21.  
  22. {$IFC NOT UsingIncludes}
  23.  UNIT Terminals;
  24.  INTERFACE
  25. {$ENDC}
  26.  
  27. {$IFC UNDEFINED __TERMINALS__}
  28. {$SETC __TERMINALS__ := 1}
  29.  
  30. {$I+}
  31. {$SETC TerminalsIncludes := UsingIncludes}
  32. {$SETC UsingIncludes := 1}
  33.  
  34. {$IFC UNDEFINED __CONDITIONALMACROS__}
  35. {$I ConditionalMacros.p}
  36. {$ENDC}
  37. {$IFC UNDEFINED __DIALOGS__}
  38. {$I Dialogs.p}
  39. {$ENDC}
  40. {$IFC UNDEFINED __CTBUTILITIES__}
  41. {$I CTBUtilities.p}
  42. {$ENDC}
  43. {$IFC UNDEFINED __CONNECTIONS__}
  44. {$I Connections.p}
  45. {$ENDC}
  46.  
  47.  
  48. {$PUSH}
  49. {$ALIGN MAC68K}
  50. {$LibExport+}
  51.  
  52.  
  53. CONST
  54.     curTMVersion                = 2;                            {  current Terminal Manager version  }
  55.  
  56.     curTermEnvRecVers            = 0;                            {  current Terminal Manager Environment Record version  }
  57.  
  58.                                                                 {  error codes     }
  59.     tmGenericError                = -1;
  60.     tmNoErr                        = 0;
  61.     tmNotSent                    = 1;
  62.     tmEnvironsChanged            = 2;
  63.     tmNotSupported                = 7;
  64.     tmNoTools                    = 8;
  65.  
  66.  
  67. TYPE
  68.     TMErr                                = OSErr;
  69.  
  70. CONST
  71.     tmInvisible                    = $01;
  72.     tmSaveBeforeClear            = $02;
  73.     tmNoMenus                    = $04;
  74.     tmAutoScroll                = $08;
  75.     tmConfigChanged                = $10;
  76.  
  77.  
  78. TYPE
  79.     TMFlags                                = UInt32;
  80.  
  81. CONST
  82.     selTextNormal                = $01;
  83.     selTextBoxed                = $02;
  84.     selGraphicsMarquee            = $04;
  85.     selGraphicsLasso            = $08;
  86.     tmSearchNoDiacrit            = $0100;
  87.     tmSearchNoCase                = $0200;
  88.  
  89.  
  90. TYPE
  91.     TMSearchTypes                        = UInt16;
  92.     TMSelTypes                            = INTEGER;
  93.  
  94. CONST
  95.     cursorText                    = 1;
  96.     cursorGraphics                = 2;
  97.  
  98.  
  99. TYPE
  100.     TMCursorTypes                        = UInt16;
  101.  
  102. CONST
  103.     tmTextTerminal                = $01;
  104.     tmGraphicsTerminal            = $02;
  105.  
  106.  
  107. TYPE
  108.     TMTermTypes                            = UInt16;
  109.     TermDataBlockPtr = ^TermDataBlock;
  110.     TermDataBlock = RECORD
  111.         flags:                    TMTermTypes;
  112.         theData:                Handle;
  113.         auxData:                Handle;
  114.         reserved:                LONGINT;
  115.     END;
  116.  
  117.     TermDataBlockH                        = ^TermDataBlockPtr;
  118.     TermDataBlockHandle                    = ^TermDataBlockPtr;
  119.     TermEnvironRecPtr = ^TermEnvironRec;
  120.     TermEnvironRec = RECORD
  121.         version:                INTEGER;
  122.         termType:                TMTermTypes;
  123.         textRows:                INTEGER;
  124.         textCols:                INTEGER;
  125.         cellSize:                Point;
  126.         graphicSize:            Rect;
  127.         slop:                    Point;
  128.         auxSpace:                Rect;
  129.     END;
  130.  
  131.     TermEnvironPtr                        = ^TermEnvironRec;
  132.     TMSelectionPtr = ^TMSelection;
  133.     TMSelection = RECORD
  134.         CASE INTEGER OF
  135.         0: (
  136.             selRect:            Rect;
  137.             );
  138.         1: (
  139.             selRgnHandle:        RgnHandle;
  140.             );
  141.     END;
  142.  
  143.     TermRecordPtr = ^TermRecord;
  144.     TermPtr                                = ^TermRecord;
  145.     TermHandle                            = ^TermPtr;
  146. {$IFC TYPED_FUNCTION_POINTERS}
  147.     TerminalSendProcPtr = FUNCTION(thePtr: Ptr; theSize: LONGINT; refCon: LONGINT; flags: CMFlags): LONGINT;
  148. {$ELSEC}
  149.     TerminalSendProcPtr = ProcPtr;
  150. {$ENDC}
  151.  
  152. {$IFC TYPED_FUNCTION_POINTERS}
  153.     TerminalBreakProcPtr = PROCEDURE(duration: LONGINT; refCon: LONGINT);
  154. {$ELSEC}
  155.     TerminalBreakProcPtr = ProcPtr;
  156. {$ENDC}
  157.  
  158. {$IFC TYPED_FUNCTION_POINTERS}
  159.     TerminalCacheProcPtr = FUNCTION(refCon: LONGINT; theTermData: TermDataBlockPtr): LONGINT;
  160. {$ELSEC}
  161.     TerminalCacheProcPtr = ProcPtr;
  162. {$ENDC}
  163.  
  164. {$IFC TYPED_FUNCTION_POINTERS}
  165.     TerminalSearchCallBackProcPtr = PROCEDURE(hTerm: TermHandle; refNum: INTEGER; VAR foundRect: Rect);
  166. {$ELSEC}
  167.     TerminalSearchCallBackProcPtr = ProcPtr;
  168. {$ENDC}
  169.  
  170. {$IFC TYPED_FUNCTION_POINTERS}
  171.     TerminalClikLoopProcPtr = FUNCTION(refCon: LONGINT): BOOLEAN;
  172. {$ELSEC}
  173.     TerminalClikLoopProcPtr = ProcPtr;
  174. {$ENDC}
  175.  
  176. {$IFC TYPED_FUNCTION_POINTERS}
  177.     TerminalEnvironsProcPtr = FUNCTION(refCon: LONGINT; VAR theEnvirons: ConnEnvironRec): CMErr;
  178. {$ELSEC}
  179.     TerminalEnvironsProcPtr = ProcPtr;
  180. {$ENDC}
  181.  
  182. {$IFC TYPED_FUNCTION_POINTERS}
  183.     TerminalChooseIdleProcPtr = PROCEDURE;
  184. {$ELSEC}
  185.     TerminalChooseIdleProcPtr = ProcPtr;
  186. {$ENDC}
  187.  
  188. {$IFC TYPED_FUNCTION_POINTERS}
  189.     TerminalToolDefProcPtr = FUNCTION(hTerm: TermHandle; msg: INTEGER; p1: LONGINT; p2: LONGINT; p3: LONGINT): LONGINT;
  190. {$ELSEC}
  191.     TerminalToolDefProcPtr = ProcPtr;
  192. {$ENDC}
  193.  
  194.     TerminalSendUPP = UniversalProcPtr;
  195.     TerminalBreakUPP = UniversalProcPtr;
  196.     TerminalCacheUPP = UniversalProcPtr;
  197.     TerminalSearchCallBackUPP = UniversalProcPtr;
  198.     TerminalClikLoopUPP = UniversalProcPtr;
  199.     TerminalEnvironsUPP = UniversalProcPtr;
  200.     TerminalChooseIdleUPP = UniversalProcPtr;
  201.     TerminalToolDefUPP = UniversalProcPtr;
  202. {    TMTermTypes     }
  203.     TermRecord = RECORD
  204.         procID:                    INTEGER;
  205.         flags:                    TMFlags;
  206.         errCode:                TMErr;
  207.         refCon:                    LONGINT;
  208.         userData:                LONGINT;
  209.         defProc:                TerminalToolDefUPP;
  210.         config:                    Ptr;
  211.         oldConfig:                Ptr;
  212.         environsProc:            TerminalEnvironsUPP;
  213.         reserved1:                LONGINT;
  214.         reserved2:                LONGINT;
  215.         tmPrivate:                Ptr;
  216.         sendProc:                TerminalSendUPP;
  217.         breakProc:                TerminalBreakUPP;
  218.         cacheProc:                TerminalCacheUPP;
  219.         clikLoop:                TerminalClikLoopUPP;
  220.         owner:                    WindowPtr;
  221.         termRect:                Rect;
  222.         viewRect:                Rect;
  223.         visRect:                Rect;
  224.         lastIdle:                LONGINT;
  225.         selection:                TMSelection;
  226.         selType:                TMSelTypes;
  227.         mluField:                LONGINT;
  228.     END;
  229.  
  230.  
  231. CONST
  232.     uppTerminalSendProcInfo = $00002FF0;
  233.     uppTerminalBreakProcInfo = $000003C0;
  234.     uppTerminalCacheProcInfo = $000003F0;
  235.     uppTerminalSearchCallBackProcInfo = $00000EC0;
  236.     uppTerminalClikLoopProcInfo = $000000D0;
  237.     uppTerminalEnvironsProcInfo = $000003E0;
  238.     uppTerminalChooseIdleProcInfo = $00000000;
  239.     uppTerminalToolDefProcInfo = $0000FEF0;
  240.  
  241. FUNCTION NewTerminalSendProc(userRoutine: TerminalSendProcPtr): TerminalSendUPP;
  242.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  243.     INLINE $2E9F;
  244.     {$ENDC}
  245.  
  246. FUNCTION NewTerminalBreakProc(userRoutine: TerminalBreakProcPtr): TerminalBreakUPP;
  247.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  248.     INLINE $2E9F;
  249.     {$ENDC}
  250.  
  251. FUNCTION NewTerminalCacheProc(userRoutine: TerminalCacheProcPtr): TerminalCacheUPP;
  252.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  253.     INLINE $2E9F;
  254.     {$ENDC}
  255.  
  256. FUNCTION NewTerminalSearchCallBackProc(userRoutine: TerminalSearchCallBackProcPtr): TerminalSearchCallBackUPP;
  257.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  258.     INLINE $2E9F;
  259.     {$ENDC}
  260.  
  261. FUNCTION NewTerminalClikLoopProc(userRoutine: TerminalClikLoopProcPtr): TerminalClikLoopUPP;
  262.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  263.     INLINE $2E9F;
  264.     {$ENDC}
  265.  
  266. FUNCTION NewTerminalEnvironsProc(userRoutine: TerminalEnvironsProcPtr): TerminalEnvironsUPP;
  267.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  268.     INLINE $2E9F;
  269.     {$ENDC}
  270.  
  271. FUNCTION NewTerminalChooseIdleProc(userRoutine: TerminalChooseIdleProcPtr): TerminalChooseIdleUPP;
  272.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  273.     INLINE $2E9F;
  274.     {$ENDC}
  275.  
  276. FUNCTION NewTerminalToolDefProc(userRoutine: TerminalToolDefProcPtr): TerminalToolDefUPP;
  277.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  278.     INLINE $2E9F;
  279.     {$ENDC}
  280.  
  281. FUNCTION CallTerminalSendProc(thePtr: Ptr; theSize: LONGINT; refCon: LONGINT; flags: CMFlags; userRoutine: TerminalSendUPP): LONGINT;
  282.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  283.     INLINE $205F, $4E90;
  284.     {$ENDC}
  285.  
  286. PROCEDURE CallTerminalBreakProc(duration: LONGINT; refCon: LONGINT; userRoutine: TerminalBreakUPP);
  287.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  288.     INLINE $205F, $4E90;
  289.     {$ENDC}
  290.  
  291. FUNCTION CallTerminalCacheProc(refCon: LONGINT; theTermData: TermDataBlockPtr; userRoutine: TerminalCacheUPP): LONGINT;
  292.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  293.     INLINE $205F, $4E90;
  294.     {$ENDC}
  295.  
  296. PROCEDURE CallTerminalSearchCallBackProc(hTerm: TermHandle; refNum: INTEGER; VAR foundRect: Rect; userRoutine: TerminalSearchCallBackUPP);
  297.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  298.     INLINE $205F, $4E90;
  299.     {$ENDC}
  300.  
  301. FUNCTION CallTerminalClikLoopProc(refCon: LONGINT; userRoutine: TerminalClikLoopUPP): BOOLEAN;
  302.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  303.     INLINE $205F, $4E90;
  304.     {$ENDC}
  305.  
  306. FUNCTION CallTerminalEnvironsProc(refCon: LONGINT; VAR theEnvirons: ConnEnvironRec; userRoutine: TerminalEnvironsUPP): CMErr;
  307.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  308.     INLINE $205F, $4E90;
  309.     {$ENDC}
  310.  
  311. PROCEDURE CallTerminalChooseIdleProc(userRoutine: TerminalChooseIdleUPP);
  312.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  313.     INLINE $205F, $4E90;
  314.     {$ENDC}
  315.  
  316. FUNCTION CallTerminalToolDefProc(hTerm: TermHandle; msg: INTEGER; p1: LONGINT; p2: LONGINT; p3: LONGINT; userRoutine: TerminalToolDefUPP): LONGINT;
  317.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  318.     INLINE $205F, $4E90;
  319.     {$ENDC}
  320.  
  321. FUNCTION InitTM: TMErr;
  322. FUNCTION TMGetVersion(hTerm: TermHandle): Handle;
  323. FUNCTION TMGetTMVersion: INTEGER;
  324. FUNCTION TMNew({CONST}VAR termRect: Rect; {CONST}VAR viewRect: Rect; flags: TMFlags; procID: INTEGER; owner: WindowPtr; sendProc: TerminalSendUPP; cacheProc: TerminalCacheUPP; breakProc: TerminalBreakUPP; clikLoop: TerminalClikLoopUPP; environsProc: TerminalEnvironsUPP; refCon: LONGINT; userData: LONGINT): TermHandle;
  325. PROCEDURE TMDispose(hTerm: TermHandle);
  326. PROCEDURE TMKey(hTerm: TermHandle; {CONST}VAR theEvent: EventRecord);
  327. PROCEDURE TMUpdate(hTerm: TermHandle; visRgn: RgnHandle);
  328. PROCEDURE TMPaint(hTerm: TermHandle; {CONST}VAR theTermData: TermDataBlock; {CONST}VAR theRect: Rect);
  329. PROCEDURE TMActivate(hTerm: TermHandle; activate: BOOLEAN);
  330. PROCEDURE TMResume(hTerm: TermHandle; resume: BOOLEAN);
  331. PROCEDURE TMClick(hTerm: TermHandle; {CONST}VAR theEvent: EventRecord);
  332. PROCEDURE TMIdle(hTerm: TermHandle);
  333. FUNCTION TMStream(hTerm: TermHandle; theBuffer: UNIV Ptr; theLength: LONGINT; flags: CMFlags): LONGINT;
  334. FUNCTION TMMenu(hTerm: TermHandle; menuID: INTEGER; item: INTEGER): BOOLEAN;
  335. PROCEDURE TMReset(hTerm: TermHandle);
  336. PROCEDURE TMClear(hTerm: TermHandle);
  337. PROCEDURE TMResize(hTerm: TermHandle; {CONST}VAR newViewRect: Rect);
  338. FUNCTION TMGetSelect(hTerm: TermHandle; theData: Handle; VAR theType: ResType): LONGINT;
  339. PROCEDURE TMGetLine(hTerm: TermHandle; lineNo: INTEGER; VAR theTermData: TermDataBlock);
  340. PROCEDURE TMSetSelection(hTerm: TermHandle; {CONST}VAR theSelection: TMSelection; selType: TMSelTypes);
  341. PROCEDURE TMScroll(hTerm: TermHandle; dh: INTEGER; dv: INTEGER);
  342. FUNCTION TMValidate(hTerm: TermHandle): BOOLEAN;
  343. PROCEDURE TMDefault(VAR theConfig: Ptr; procID: INTEGER; allocate: BOOLEAN);
  344. FUNCTION TMSetupPreflight(procID: INTEGER; VAR magicCookie: LONGINT): Handle;
  345. PROCEDURE TMSetupSetup(procID: INTEGER; theConfig: UNIV Ptr; count: INTEGER; theDialog: DialogPtr; VAR magicCookie: LONGINT);
  346. FUNCTION TMSetupFilter(procID: INTEGER; theConfig: UNIV Ptr; count: INTEGER; theDialog: DialogPtr; VAR theEvent: EventRecord; VAR theItem: INTEGER; VAR magicCookie: LONGINT): BOOLEAN;
  347. PROCEDURE TMSetupItem(procID: INTEGER; theConfig: UNIV Ptr; count: INTEGER; theDialog: DialogPtr; VAR theItem: INTEGER; VAR magicCookie: LONGINT);
  348. PROCEDURE TMSetupXCleanup(procID: INTEGER; theConfig: UNIV Ptr; count: INTEGER; theDialog: DialogPtr; OKed: BOOLEAN; VAR magicCookie: LONGINT);
  349. PROCEDURE TMSetupPostflight(procID: INTEGER);
  350. FUNCTION TMGetConfig(hTerm: TermHandle): Ptr;
  351. FUNCTION TMSetConfig(hTerm: TermHandle; thePtr: UNIV Ptr): INTEGER;
  352. FUNCTION TMIntlToEnglish(hTerm: TermHandle; inputPtr: UNIV Ptr; VAR outputPtr: Ptr; language: INTEGER): OSErr;
  353. FUNCTION TMEnglishToIntl(hTerm: TermHandle; inputPtr: UNIV Ptr; VAR outputPtr: Ptr; language: INTEGER): OSErr;
  354. PROCEDURE TMGetToolName(id: INTEGER; VAR name: Str255);
  355. FUNCTION TMGetProcID(name: Str255): INTEGER;
  356. PROCEDURE TMSetRefCon(hTerm: TermHandle; refCon: LONGINT);
  357. FUNCTION TMGetRefCon(hTerm: TermHandle): LONGINT;
  358. PROCEDURE TMSetUserData(hTerm: TermHandle; userData: LONGINT);
  359. FUNCTION TMGetUserData(hTerm: TermHandle): LONGINT;
  360. FUNCTION TMAddSearch(hTerm: TermHandle; theString: Str255; {CONST}VAR where: Rect; searchType: TMSearchTypes; callBack: TerminalSearchCallBackUPP): INTEGER;
  361. PROCEDURE TMRemoveSearch(hTerm: TermHandle; refnum: INTEGER);
  362. PROCEDURE TMClearSearch(hTerm: TermHandle);
  363. FUNCTION TMGetCursor(hTerm: TermHandle; cursType: TMCursorTypes): Point;
  364. FUNCTION TMGetTermEnvirons(hTerm: TermHandle; VAR theEnvirons: TermEnvironRec): TMErr;
  365. FUNCTION TMChoose(VAR hTerm: TermHandle; where: Point; idleProc: TerminalChooseIdleUPP): INTEGER;
  366. PROCEDURE TMEvent(hTerm: TermHandle; {CONST}VAR theEvent: EventRecord);
  367. FUNCTION TMDoTermKey(hTerm: TermHandle; theKey: Str255): BOOLEAN;
  368. FUNCTION TMCountTermKeys(hTerm: TermHandle): INTEGER;
  369. PROCEDURE TMGetIndTermKey(hTerm: TermHandle; id: INTEGER; VAR theKey: Str255);
  370. PROCEDURE TMGetErrorString(hTerm: TermHandle; id: INTEGER; VAR errMsg: Str255);
  371. {$ALIGN RESET}
  372. {$POP}
  373.  
  374. {$SETC UsingIncludes := TerminalsIncludes}
  375.  
  376. {$ENDC} {__TERMINALS__}
  377.  
  378. {$IFC NOT UsingIncludes}
  379.  END.
  380. {$ENDC}
  381.